Specify the tissue of interest, run the boilerplate code which sets up the functions and environment, load the tissue object.
tissue_of_interest = "Aorta"
library(here)
source(here("00_data_ingest", "02_tissue_analysis_rmd", "boilerplate.R"))
tiss <- load_tissue_facs(tissue_of_interest)
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
[1] "Scaling data matrix"
|
| | 0%
|
|===========================================================================================| 100%
Calculating gene means
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
**************************************************|


PCElbowPlot(object = tiss)

# Set number of principal components.
n.pcs = 15
# Set resolution
res.used <- 1.5
tiss <- FindClusters(object = tiss, reduction.type = "pca", dims.use = 1:n.pcs,
resolution = res.used, print.output = 0, save.SNN = TRUE)
tiss <- RunTSNE(object = tiss, dims.use = 1:n.pcs, seed.use = 10, perplexity=30)
# note that you can set do.label=T to help label individual clusters
TSNEPlot(object = tiss, do.label = T)

# Batch and animal effects
TSNEPlot(object = tiss, do.return = TRUE, group.by = "plate.barcode")

TSNEPlot(object = tiss, do.return = TRUE, group.by = "mouse.id")

FeaturePlot(tiss, "Alas2")

FeaturePlot(tiss, "Pecam1")

FeaturePlot(tiss, "H2-Aa")

FeaturePlot(tiss, "H2-Ab1")

Check expression of genes of interset.

Dotplots let you see the intensity of expression and the fraction of cells expressing for each of your genes of interest.

How big are the clusters?
table(tiss@ident)
0 1 2 3 4 5
91 74 70 70 59 44
Which markers identify a specific cluster?
#clust.markers <- FindMarkers(object = tiss, ident.1 = 3, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
#print(x = head(x= clust.markers, n = 10))
Assigning cell type identity to clusters
At a coarse level, we can use canonical markers to match the unbiased clustering to known cell types:
# stash current cluster IDs
tiss <- StashIdent(object = tiss, save.name = "cluster.ids")
# enumerate current cluster IDs and the labels for them
cluster.ids <- c(0, 1,2,3,4,5)
free_annotation <- c("red blood cells",
"endothelial cells_1",
"endothelial cells_2",
"fibroblasts",
"antigen presenting cells",
"endothelial cells_3")
cell_ontology_class <-c("erythrocyte",
"endothelial cell",
"endothelial cell",
"fibroblast",
"professional antigen presenting cell",
"endothelial cell")
stash_annotations(tiss, cluster.ids, free_annotation, cell_ontology_class)

Save the Robject for later
When you save the annotated tissue, please give it a name.
filename = here('00_data_ingest', '04_tissue_robj_generated',
paste0("facs_", tissue_of_interest, "_seurat_tiss.Robj"))
print(filename)
save(tiss, file=filename)
# To reload a saved object
# filename = here('00_data_ingest', '04_tissue_robj_generated',
# paste0("facs", tissue_of_interest, "_seurat_tiss.Robj"))
# load(file=filename)
Figures for Supplement
LS0tCnRpdGxlOiAiQW9ydGEgZmFjcyBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQKICBodG1sX25vdGVib29rOiBkZWZhdWx0Ci0tLQoKU3BlY2lmeSB0aGUgdGlzc3VlIG9mIGludGVyZXN0LCBydW4gdGhlIGJvaWxlcnBsYXRlIGNvZGUgd2hpY2ggc2V0cyB1cCB0aGUgZnVuY3Rpb25zIGFuZCBlbnZpcm9ubWVudCwgbG9hZCB0aGUgdGlzc3VlIG9iamVjdC4KCmBgYHtyfQp0aXNzdWVfb2ZfaW50ZXJlc3QgPSAiQW9ydGEiCmxpYnJhcnkoaGVyZSkKc291cmNlKGhlcmUoIjAwX2RhdGFfaW5nZXN0IiwgIjAyX3Rpc3N1ZV9hbmFseXNpc19ybWQiLCAiYm9pbGVycGxhdGUuUiIpKQp0aXNzIDwtIGxvYWRfdGlzc3VlX2ZhY3ModGlzc3VlX29mX2ludGVyZXN0KQpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTQsIGZpZy53aWR0aD04fQpQQ0hlYXRtYXAob2JqZWN0ID0gdGlzcywgcGMudXNlID0gMTozLCBjZWxscy51c2UgPSA1MDAsIGRvLmJhbGFuY2VkID0gVFJVRSwgbGFiZWwuY29sdW1ucyA9IEZBTFNFLCBudW0uZ2VuZXMgPSA4KQpgYGAKCmBgYHtyfQpQQ0VsYm93UGxvdChvYmplY3QgPSB0aXNzKQpgYGAKCmBgYHtyfQojIFNldCBudW1iZXIgb2YgcHJpbmNpcGFsIGNvbXBvbmVudHMuIApuLnBjcyA9IDE1CmBgYAoKYGBge3J9CiMgU2V0IHJlc29sdXRpb24gCnJlcy51c2VkIDwtIDEuNQoKdGlzcyA8LSBGaW5kQ2x1c3RlcnMob2JqZWN0ID0gdGlzcywgcmVkdWN0aW9uLnR5cGUgPSAicGNhIiwgZGltcy51c2UgPSAxOm4ucGNzLCAKICAgIHJlc29sdXRpb24gPSByZXMudXNlZCwgcHJpbnQub3V0cHV0ID0gMCwgc2F2ZS5TTk4gPSBUUlVFKQpgYGAKCmBgYHtyfQp0aXNzIDwtIFJ1blRTTkUob2JqZWN0ID0gdGlzcywgZGltcy51c2UgPSAxOm4ucGNzLCBzZWVkLnVzZSA9IDEwLCBwZXJwbGV4aXR5PTMwKQpgYGAKCmBgYHtyfQojIG5vdGUgdGhhdCB5b3UgY2FuIHNldCBkby5sYWJlbD1UIHRvIGhlbHAgbGFiZWwgaW5kaXZpZHVhbCBjbHVzdGVycwpUU05FUGxvdChvYmplY3QgPSB0aXNzLCBkby5sYWJlbCA9IFQpCmBgYAoKYGBge3J9CiMgQmF0Y2ggYW5kIGFuaW1hbCBlZmZlY3RzClRTTkVQbG90KG9iamVjdCA9IHRpc3MsIGRvLnJldHVybiA9IFRSVUUsIGdyb3VwLmJ5ID0gInBsYXRlLmJhcmNvZGUiKQpUU05FUGxvdChvYmplY3QgPSB0aXNzLCBkby5yZXR1cm4gPSBUUlVFLCBncm91cC5ieSA9ICJtb3VzZS5pZCIpCmBgYAoKYGBge3J9CkZlYXR1cmVQbG90KHRpc3MsICJBbGFzMiIpCkZlYXR1cmVQbG90KHRpc3MsICJQZWNhbTEiKQpGZWF0dXJlUGxvdCh0aXNzLCAiSDItQWEiKQpGZWF0dXJlUGxvdCh0aXNzLCAiSDItQWIxIikKYGBgCgoKQ2hlY2sgZXhwcmVzc2lvbiBvZiBnZW5lcyBvZiBpbnRlcnNldC4KCmBgYHtyLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTEyLCBmaWcud2lkdGg9OH0KZ2VuZXNfdG9fY2hlY2sgPSBjKCdWaW0nLCdLcnQ1JywnS3J0OCcsJ1B0cHJjJywnRXBjYW0nLCdIMi1BYjEnLCdIMi1BYScsJ0NkMzQnLCdDZGg1JywnQ2QxNCcsJ1Z3ZicsJ1N5aycsJ0NvbDFhMicsJ1RpbXAyJywnQ2Q3NCcsCiAgICAgICAgICAgICAgICAgICAnTGFwdG01JywnU2VscGxnJywnUGVjYW0xJywnRmFicDQnLCdTb3gxOCcsJ0ljYW0xJywnVGVrJywnVmNhbTEnLCdWZWdmYScsJ0FkaXBvcjEnLCdDYXIzJywnQWxhczInLCdBY3RhMicsCiAgICAgICAgICAgICAgICAgICAnRGNuJywnTXlvY2QnLCdUYWdsbicsJ015aDExJywnUzEwMGE0JywnQ2QzZScsJ1BkZ2ZyYScsJ0tpdCcsJ0d5cGEnLCdDb2w2YTMnLCdGYXAnKQpGZWF0dXJlUGxvdCh0aXNzLCBnZW5lc190b19jaGVjaywgcHQuc2l6ZSA9IDEsIG5Db2wgPSAzKQpgYGAKCkRvdHBsb3RzIGxldCB5b3Ugc2VlIHRoZSBpbnRlbnNpdHkgb2YgZXhwcmVzc2lvbiBhbmQgdGhlIGZyYWN0aW9uIG9mIGNlbGxzIGV4cHJlc3NpbmcgZm9yIGVhY2ggb2YgeW91ciBnZW5lcyBvZiBpbnRlcmVzdC4KCmBgYHtyLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTgsIGZpZy53aWR0aD04fQojIFRvIGNoYW5nZSB0aGUgeS1heGlzIHRvIHNob3cgcmF3IGNvdW50cywgYWRkIHVzZS5yYXcgPSBULgojRG90UGxvdCh0aXNzLCBnZW5lc190b19jaGVjaywgY29sLm1heCA9IDIuNSwgcGxvdC5sZWdlbmQgPSBULCBkby5yZXR1cm4gPSBUKSArIGNvb3JkX2ZsaXAoKQpWbG5QbG90KHRpc3MsIGdlbmVzX3RvX2NoZWNrKQpgYGAKCkhvdyBiaWcgYXJlIHRoZSBjbHVzdGVycz8KYGBge3J9CnRhYmxlKHRpc3NAaWRlbnQpCmBgYAoKV2hpY2ggbWFya2VycyBpZGVudGlmeSBhIHNwZWNpZmljIGNsdXN0ZXI/CmBgYHtyfQojY2x1c3QubWFya2VycyA8LSBGaW5kTWFya2VycyhvYmplY3QgPSB0aXNzLCBpZGVudC4xID0gMywgb25seS5wb3MgPSBUUlVFLCBtaW4ucGN0ID0gMC4yNSwgdGhyZXNoLnVzZSA9IDAuMjUpCiNwcmludCh4ID0gaGVhZCh4PSBjbHVzdC5tYXJrZXJzLCBuID0gMTApKQpgYGAKCiMjIEFzc2lnbmluZyBjZWxsIHR5cGUgaWRlbnRpdHkgdG8gY2x1c3RlcnMKCkF0IGEgY29hcnNlIGxldmVsLCB3ZSBjYW4gdXNlIGNhbm9uaWNhbCBtYXJrZXJzIHRvIG1hdGNoIHRoZSB1bmJpYXNlZCBjbHVzdGVyaW5nIHRvIGtub3duIGNlbGwgdHlwZXM6CgpgYGB7cn0KIyBzdGFzaCBjdXJyZW50IGNsdXN0ZXIgSURzCnRpc3MgPC0gU3Rhc2hJZGVudChvYmplY3QgPSB0aXNzLCBzYXZlLm5hbWUgPSAiY2x1c3Rlci5pZHMiKQoKIyBlbnVtZXJhdGUgY3VycmVudCBjbHVzdGVyIElEcyBhbmQgdGhlIGxhYmVscyBmb3IgdGhlbQpjbHVzdGVyLmlkcyA8LSBjKDAsIDEsMiwzLDQsNSkKZnJlZV9hbm5vdGF0aW9uIDwtIGMoInJlZCBibG9vZCBjZWxscyIsIAogICAgICAgICAgICAgICAgICAgICAiZW5kb3RoZWxpYWwgY2VsbHNfMSIsCiAgICAgICAgICAgICAgICAgICAgICJlbmRvdGhlbGlhbCBjZWxsc18yIiwKICAgICAgICAgICAgICAgICAgICAgImZpYnJvYmxhc3RzIiwKICAgICAgICAgICAgICAgICAgICAgImFudGlnZW4gcHJlc2VudGluZyBjZWxscyIsCiAgICAgICAgICAgICAgICAgICAgICJlbmRvdGhlbGlhbCBjZWxsc18zIikKCmNlbGxfb250b2xvZ3lfY2xhc3MgPC1jKCJlcnl0aHJvY3l0ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJlbmRvdGhlbGlhbCBjZWxsIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICJlbmRvdGhlbGlhbCBjZWxsIiwKICAgICAgICAgICAgICAgICAgICAgICAgImZpYnJvYmxhc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAicHJvZmVzc2lvbmFsIGFudGlnZW4gcHJlc2VudGluZyBjZWxsIiwKICAgICAgICAgICAgICAgICAgICAgICAgImVuZG90aGVsaWFsIGNlbGwiKQoKdGlzcyA8LSBzdGFzaF9hbm5vdGF0aW9ucyh0aXNzLCBjbHVzdGVyLmlkcywgZnJlZV9hbm5vdGF0aW9uLCBjZWxsX29udG9sb2d5X2NsYXNzKQpgYGAKCmBgYHtyfQpUU05FUGxvdChvYmplY3QgPSB0aXNzLCBkby5sYWJlbCA9IFRSVUUsIHB0LnNpemUgPSAwLjUsIGdyb3VwLmJ5PSdmcmVlX2Fubm90YXRpb24nKQpgYGAKCiMgU2F2ZSB0aGUgUm9iamVjdCBmb3IgbGF0ZXIKV2hlbiB5b3Ugc2F2ZSB0aGUgYW5ub3RhdGVkIHRpc3N1ZSwgcGxlYXNlIGdpdmUgaXQgYSBuYW1lLgoKYGBge3J9CmZpbGVuYW1lID0gaGVyZSgnMDBfZGF0YV9pbmdlc3QnLCAnMDRfdGlzc3VlX3JvYmpfZ2VuZXJhdGVkJywgCiAgICAgICAgICAgICAgICAgICAgIHBhc3RlMCgiZmFjc18iLCB0aXNzdWVfb2ZfaW50ZXJlc3QsICJfc2V1cmF0X3Rpc3MuUm9iaiIpKQpwcmludChmaWxlbmFtZSkKc2F2ZSh0aXNzLCBmaWxlPWZpbGVuYW1lKQpgYGAKCmBgYHtyfQojIFRvIHJlbG9hZCBhIHNhdmVkIG9iamVjdAojIGZpbGVuYW1lID0gaGVyZSgnMDBfZGF0YV9pbmdlc3QnLCAnMDRfdGlzc3VlX3JvYmpfZ2VuZXJhdGVkJywgCiMgICAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCJmYWNzIiwgdGlzc3VlX29mX2ludGVyZXN0LCAiX3NldXJhdF90aXNzLlJvYmoiKSkKIyBsb2FkKGZpbGU9ZmlsZW5hbWUpCmBgYAoKIyBFeHBvcnQgdGhlIGZpbmFsIG1ldGFkYXRhCgpTbyB0aGF0IEJpb2h1YiBjYW4gZWFzaWx5IGNvbWJpbmUgYWxsIHlvdXIgY2VsbF9vbnRvbG9neV9jbGFzc3MsIHBsZWFzZSBleHBvcnQgdGhlbSBhcyBhIHNpbXBsZSBjc3YuCgpgYGB7cn0KaGVhZCh0aXNzQG1ldGEuZGF0YSkKYGBgCgpgYGB7cn0KZmlsZW5hbWUgPSBoZXJlKCcwMF9kYXRhX2luZ2VzdCcsICcwM190aXNzdWVfYW5ub3RhdGlvbl9jc3YnLCAKICAgICAgICAgICAgICAgICAgICAgcGFzdGUwKHRpc3N1ZV9vZl9pbnRlcmVzdCwgIl9mYWNzIiwgIl9hbm5vdGF0aW9uLmNzdiIpKQp3cml0ZS5jc3YoRmV0Y2hEYXRhKHRpc3MsIGMoJ3BsYXRlLmJhcmNvZGUnLCdjZWxsX29udG9sb2d5X2NsYXNzJywgJ2ZyZWVfYW5ub3RhdGlvbicsICd0U05FXzEnLCAndFNORV8yJykpLCBmaWxlPWZpbGVuYW1lKQpgYGAKCiMgRmlndXJlcyBmb3IgU3VwcGxlbWVudAoK